package com.vehiclesecure.repository;

import com.vehiclesecure.model.EmergencyAlert;
import org.springframework.data.mongodb.repository.MongoRepository;
import org.springframework.stereotype.Repository;

import java.time.LocalDateTime;
import java.util.List;

/**
 * 紧急警报数据访问层，提供紧急警报数据的CRUD操作
 */
@Repository
public interface EmergencyAlertRepository extends MongoRepository<EmergencyAlert, String> {

    /**
     * 根据车辆ID查找警报
     * @param vehicleId 车辆唯一标识符
     * @return 警报列表
     */
    List<EmergencyAlert> findByVehicleId(String vehicleId);

    /**
     * 根据警报状态查找警报
     * @param status 警报状态
     * @return 警报列表
     */
    List<EmergencyAlert> findByStatus(EmergencyAlert.AlertStatus status);

    /**
     * 根据时间范围查询警报
     * @param start 开始时间
     * @param end 结束时间
     * @return 警报列表
     */
    List<EmergencyAlert> findByCreatedAtBetween(LocalDateTime start, LocalDateTime end);

    /**
     * 根据车辆ID和警报状态查找警报
     * @param vehicleId 车辆唯一标识符
     * @param status 警报状态
     * @return 警报列表
     */
    List<EmergencyAlert> findByVehicleIdAndStatus(String vehicleId, EmergencyAlert.AlertStatus status);
}